package com.ai.analysis;

import java.util.ArrayList;
import java.util.List;

import com.base.SnThread;

public class StoreHouse {
	// 原始
	private static List<String> raw_list = new ArrayList<String>();
	// 已处理后
	private static List<String> use_list = new ArrayList<String>();

	public static void addRaw(String bag) {
		raw_list.add(bag);
	}

	public synchronized static String getRaw() {
		String pkg = null;
		if (raw_list.size() > 0) {
			pkg = raw_list.remove(0);
		}
		return pkg;
	}

	public static void addUse(String bag) {
		use_list.add(bag);
	}
	
	public synchronized static String getLastUse(String bag) {
		String pkg = null;
		int idx = use_list.indexOf(bag)-1;
		if (use_list.size() > idx) {
			pkg = use_list.remove(idx);
		}
		return pkg;
	}

	public synchronized static String getUse() {
		String pkg = null;
		if (use_list.size() > 0) {
			pkg = use_list.remove(0);
		}
		return pkg;
	}

	/**
	 * @Description 缓存数据管理
	 * @ClassName StoreHouseManager
	 * @Date 2017年1月22日 下午3:39:06
	 * @Author yanghao Copyright (c) All Rights Reserved, 2017.
	 */
	StoreHouseManager manger = new StoreHouseManager();

	class StoreHouseManager extends SnThread {
		private boolean goon = false;
		private long max = 10000;

		StoreHouseManager() {
			goon = true;
			this.start();
		}

		/**
		 * @Description 工作
		 * @param 参数
		 * @return void 返回类型
		 * @throws
		 */
		public void work() {
			goon = true;
			this.start();
		}

		/**
		 * @Description 休息
		 * @param 参数
		 * @return void 返回类型
		 * @throws
		 */
		public void rest() {
			goon = false;
		}

		public void run() {
			while (goon) {
				checkCache();
			}
		}

		public void checkCache() {
			sleep(1000);
			if (raw_list.size() > max) {
				for (int i = 0; i < 1000; i++)
					raw_list.remove(0);
			}
			if (use_list.size() > max) {
				for (int i = 0; i < 1000; i++)
					use_list.remove(0);
			}
		}

	}

}
